package tk.abrbanco.controladores;

import java.util.Vector;

import tk.abrbanco.exceptions.ClienteInexistenteException;
import tk.abrbanco.exceptions.ErroAcessoRepositorioException;
import tk.abrbanco.interfaces.IRepositorioGenerico;
import tk.abrbanco.javabeans.cliente.Cliente;

public class ControladorGenerico<E> implements IRepositorioGenerico<E> {
		
		private IRepositorioGenerico<E> repositorio;
		
		//Construtor
		public ControladorGenerico(IRepositorioGenerico<E> repositorio){
			this.repositorio = repositorio;
			
		}
		
		//CRUD - Inserir, Procurar, Atualizar e Deletar
		public void inserir(Cliente cliente){
			repositorio.inserir(cliente);
		}
		
		public Cliente procurar(String cpf){
			return repositorio.procurar(cpf);
		}
		
		public void atualizar(Cliente cliente) throws ClienteInexistenteException{
			repositorio.atualizar(cliente);
		}
		
		public void deletar(String cpf) throws ClienteInexistenteException{
			repositorio.deletar(cpf);
		}
		
		public Vector<Cliente> listar() throws ErroAcessoRepositorioException{
			return repositorio.listar();
		};

}
